package plannegocio.web;

//import java.io.FileInputStream;
//import java.io.InputStream;
//import java.nio.file.Files;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
//import javax.servlet.http.HttpSession;

//import org.apache.commons.io.IOUtils;
import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.ServletRequestUtils;
import org.springframework.web.bind.ServletRequestUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import plannegocio.excepcion.DAOExcepcion;

import plannegocio.modelo.PlanNegocio;
import plannegocio.negocio.GestionPlannegocios;


@Controller
public class PlanNegocioBuscarController {

	// ***************
	// Mantenimiento *
	// ***************
	
	@RequestMapping(value = "/mantenimiento_plannegociobuscaplan", method = RequestMethod.GET)
	protected ModelAndView mantener_plannegocioxaprobar(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		HttpSession sesion=request.getSession();
		sesion.setAttribute("TipoMantiene", "");
		
		Map<String, Object> contactMap = new HashMap<String, Object>();
		PlanNegocio objPlanNegocio = new PlanNegocio();
		contactMap.put("mensaje", "");
		contactMap.put("objPlanNegocio", objPlanNegocio);
		return new ModelAndView("/mantenimiento_plannegociobuscaplan", contactMap);
		
	}

	@RequestMapping(value = "/ver_plannegociobuscaplan")
	protected ModelAndView editar_plannegocioxaprobar(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		HttpSession sesion=request.getSession();
		sesion.setAttribute("TipoMantiene", "VER");
		
		int idplan= ServletRequestUtils.getRequiredIntParameter(request, "id");
		
		Map<String, Object> contactMap = new HashMap<String, Object>();
		GestionPlannegocios negocio= new GestionPlannegocios();
		PlanNegocio objPlanNegocio = new PlanNegocio();
		objPlanNegocio=negocio.obtener_plannegocio(idplan);
		
		
		contactMap.put("mensaje", "");
		contactMap.put("objPlanNegocio", objPlanNegocio);
		return new ModelAndView("/mantenimiento_plannegociobuscaplan", contactMap);
	}
	
	
	@RequestMapping(value = "/busqueda_buscaplan",method=RequestMethod.GET)	
	protected ModelAndView busqueda_buscaplan(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		GestionPlannegocios negocio= new GestionPlannegocios();
		Collection<PlanNegocio> listaplanesxnombre = null;
		listaplanesxnombre = negocio.BuscarPorNombre("");
		
		//return new ModelAndView("planesxsabio", "PLANESXSABIO", listaplanesxsabio);
		
		return new ModelAndView("busqueda_buscaplan","PLANESXNOMBRE",listaplanesxnombre);
	}
	
	@RequestMapping(value = "/busquedabuscaplan" ,method=RequestMethod.POST)
	protected ModelAndView buscaplan(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		String nombre =request.getParameter("dato_buscar");
		System.out.println(nombre);
		GestionPlannegocios negocio= new GestionPlannegocios();
		Collection<PlanNegocio> listaplanesxnombre = null;
		listaplanesxnombre = negocio.BuscarPorNombre(nombre);
		
		//return new ModelAndView("planesxsabio", "PLANESXSABIO", listaplanesxsabio);
		
		return new ModelAndView("busqueda_buscaplan","PLANESXNOMBRE",listaplanesxnombre);
	}
	
	@RequestMapping(value = "/busqueda_buscaplanxte",method=RequestMethod.GET)	
	protected ModelAndView busqueda_buscaplanxte(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		GestionPlannegocios negocio= new GestionPlannegocios();
		Collection<PlanNegocio> listaplanesxte = null;
		listaplanesxte = negocio.buscarPorRangoTiempoEjecucion(0.00, 0.00);
		
		//return new ModelAndView("planesxsabio", "PLANESXSABIO", listaplanesxsabio);
		
		return new ModelAndView("busqueda_buscaplanxte","PLANESXTE",listaplanesxte);
	}

	@RequestMapping(value = "/busquedabuscaplanxte" ,method=RequestMethod.POST)
	protected ModelAndView buscaplanxte(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		Double te1 =Double.parseDouble(request.getParameter("dato_buscar1"));
		Double te2 =Double.parseDouble(request.getParameter("dato_buscar2"));
		
		System.out.println(te1);
		System.out.println(te2);
		GestionPlannegocios negocio= new GestionPlannegocios();
		Collection<PlanNegocio> listaplanesxte = null;
		listaplanesxte = negocio.buscarPorRangoTiempoEjecucion(te1, te2);
		
		
		//return new ModelAndView("planesxsabio", "PLANESXTE", listaplanesxte);
		
		return new ModelAndView("busqueda_buscaplanxte","PLANESXTE",listaplanesxte);
	}
	@RequestMapping(value = "/busqueda_buscaplanxit",method=RequestMethod.GET)	
	protected ModelAndView busqueda_buscaplanxit(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		GestionPlannegocios negocio= new GestionPlannegocios();
		Collection<PlanNegocio> listaplanesxit = null;
		listaplanesxit = negocio.BuscarPorRangoInversionTotal(0.00, 0.00);
		
		//return new ModelAndView("planesxsabio", "PLANESXSABIO", listaplanesxsabio);
		
		return new ModelAndView("busqueda_buscaplanxit","PLANESXIT",listaplanesxit);
	}

	@RequestMapping(value = "/busquedabuscaplanxit" ,method=RequestMethod.POST)
	protected ModelAndView buscaplanxit(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		Double te1 =Double.parseDouble(request.getParameter("dato_buscar1"));
		Double te2 =Double.parseDouble(request.getParameter("dato_buscar2"));
		
		System.out.println(te1);
		System.out.println(te2);
		GestionPlannegocios negocio= new GestionPlannegocios();
		Collection<PlanNegocio> listaplanesxit = null;
		listaplanesxit = negocio.BuscarPorRangoInversionTotal(te1, te2);
		
		
		//return new ModelAndView("planesxsabio", "PLANESXTE", listaplanesxte);
		
		return new ModelAndView("busqueda_buscaplanxit","PLANESXIT",listaplanesxit);
	}

}